package db

const TableNameTrade = TablePrefix + "trade"

type Trade struct {
	BaseModel
	UID        uint    `gorm:"column:uid;type:int(11);default:0;comment:用户id" json:"uid" form:"uid"`                             // 用户id
	WID        uint    `gorm:"column:wid;type:int(11);default:0;comment:仓库id" json:"wid" form:"wid"`                             // 仓库id
	Type       int     `gorm:"column:type;type:tinyint(1);default:1;comment:1=卡牌,2=材料,3=装备" json:"type" form:"type"`             // 1=卡牌,2=材料,3=装备
	TypeID     uint    `gorm:"column:type_id;type:int(11);default:0;comment:商品类型" json:"type_id" form:"type_id"`                 // 商品类型
	SellTypeID uint    `gorm:"column:sell_type_id;type:int(11);default:0;comment:售卖材料类型" json:"sellTypeID" form:"sellTypeID"`    // 售卖材料类型
	Price      float64 `gorm:"column:price;type:decimal(20,2);default:0;comment:单价" json:"price" form:"price"`                   // 单价
	TotalPrice float64 `gorm:"column:total_price;type:decimal(20,2);default:0;comment:总价" json:"total_price" form:"total_price"` // 总价
	Num        int64   `gorm:"column:num;type:int(11);default:0;comment:数量" json:"num" form:"num"`                               // 数量
	SalesNum   int64   `gorm:"column:sales_num;type:int(11);default:0;comment:售卖数量" json:"sales_num" form:"sales_num"`           // 售卖数量
	SyNum      int64   `gorm:"column:sy_num;type:int(11);default:0;comment:剩余数量" json:"sy_num" form:"sy_num"`                    // 剩余数量
	ReturnNum  int64   `gorm:"column:return_num;type:int(11);default:0;comment:退回数量" json:"return_num" form:"return_num"`        // 退回数量
	Status     int     `gorm:"column:status;type:tinyint(1);default:0;comment:1=出售中2=冻结中3=已出售4=已下架" json:"status" form:"status"` // 1=出售中2=冻结中3=已出售4=已下架
}

func (*Trade) TableName() string {
	return TableNameTrade
}

type TradeHasOneType struct {
	Trade
	Types     Type `gorm:"foreignKey:ID;references:TypeID" json:"types"`
	SellTypes Type `gorm:"foreignKey:ID;references:SellTypeID" json:"sellTypes"`
}
